package main

import "fmt"

func main() {
	//实现一个功能：求和： 1+2+3+4+5：
	//求和：
	//利用for循环来解决问题：
	var sum int8 = 0
	var i int8 = 1
	for ; i <= 5; i++ {
		sum += i
	}
	for k := 9; k <= 5; k++ {
		sum += int8(k)
	}
	//输出结果：
	fmt.Println(sum)
	fmt.Printf("sum 的类型 %T", sum)
	// for循环的语法格式：
	// for 初始表达式; 布尔表达式（条件判断）; 迭代因子 {
	// 	循环体;--》反复重复执行的内容
	// }
	// 注意：for的初始表达式 不能用var定义变量的形式，要用:=
	// 注意：for循环实际就是让程序员写代码的效率高了，但是底层该怎么执行还是怎么执行的，底层效率没有提高，只是程序员写代码简洁了而已

	//定义一个字符串：
	var str string = "hello golang你好"
	//方式1：普通for循环：按照字节进行遍历输出的 （暂时先不使用中文）
	for i := 0; i < len(str); i++ { //i:理解为字符串的下标
		fmt.Printf("%v : %c \n", i, str[i])
	}
	//方式2：for range
	for i, value := range str {
		fmt.Printf("索引为：%d,具体的值为：%c \n", i, value)
	}
	fmt.Println(len(str))
	//对str进行遍历，遍历的每个结果的索引值被i接收，每个结果的具体数值被value接收
	//遍历对字符进行遍历的
}
